This chapter describes each Internet Connection Server configuration directive. If you choose to configure the Internet Connection Server by editing the httpd.cnf configuration file, use this chapter as a reference.
The directive descriptions are grouped according to function; similar to the way the Configuration and Administration Forms are grouped. Within each group, the directives are in alphabetical order.
Each directive description includes:
DirectiveName value
Use the directives described in this section to control your server's basic configuration settings.
Use this directive to specify whether you want your server to look up the host name of requesting clients.
The value you use affects the following things about how your server works:
DNS-Lookup On
DNS-Lookup Off
Use this directive to specify the fully qualified host name of the machine on which the server is running. If you want to use an alias, you can specify any fully qualified host name that is defined for your machine in your domain name server. The name you specify on this directive is the name that is returned to clients.
HostName www.ibm.com
Use this directive to specify the port number the server should listen to for requests. The standard port number for HTTP is 80. Other port numbers less than 1024 are reserved for other TCP/IP applications and should not be used. Common ports used for proxy Web servers are 8080 and 8008.
When a port other than 80 is used, clients are required to include a specific port number on requests to the server. The port number is preceded by a colon and placed after the host name on the URL. For example, the URL,
http://www.turfco.com:8008/requests the default welcome page from a host named www.turfco.com that is listening on port 8008.
You can use the -p option on the httpd command to override this setting when starting the server.
If you change this directive, you must stop your server and then start it again for the change to take effect. The server will not pick up the change if you only restart it.
Port 8080
Use this directive to specify the directory where the server program is installed.
ServerRoot d:\webserve\BIN
ServerRoot C:\WWW\BIN
Use the directives described in this section to control how your server responds to requests containing a directory name. You can have the server search the directory for a welcome file to return, or you can have the server generate a directory listing.
By default, the server first looks for a welcome file. If no welcome file is present, the server displays a directory listing. Configuration settings control how directory listings appear and the icons that the listings use.
The server provides a set of default icons to use for directory listings. You can replace these icons with others using some of the directives described in this section.
Use this directive to specify an icon to use for aligning the heading on directory listings. This can either be a blank icon or another icon you want to appear on the headings of your directory listings. For proper alignment, the icon you use must be the same size as the other icons you are using on your directory listings. The format of the directive is:
AddBlankIcon icon-URL alternate-text
If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.
AddBlankIcon logo.gif logo
AddBlankIcon blank.gif
The default does not specify alternative text since the icon is blank.
Use this directive to specify an icon for representing a directory on a directory listing. The format of the directive is:
AddDirIcon icon-URL alternate-text
If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.
AddDirIcon direct.gif DIR
AddDirIcon dir.gif DIR
Use this directive to specify icons for representing files with a specific MIME content-type or encoding-type. The server uses the icons on directory listings. The format of the directive is:
AddIcon icon-URL alternate-text type-template
If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.
AddIcon movie.gif video video/*
AddIcon binary.gif BIN binary AddIcon text.gif TXT text/* AddIcon image.gif IMG image/* AddIcon movie.gif MOV video/* AddIcon sound.gif AU audio/* AddIcon tar.gif TAR multipart/*tar AddIcon compress.gif CMP x-compress x-gzip
Use this directive to specify an icon for representing a parent directory on a directory listing. The format of the directive is:
AddParentIcon icon-URL alternate-text
If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.
AddParentIcon parent.gif UP
AddParentIcon back.gif UP
Use this directive to specify an icon for representing files with an unknown file type on a directory listing. The format of the directive is:
AddUnknownIcon icon-URL alternate-text
If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.
AddUnknownIcon saywhat.gif huh
AddUnknownIcon unknown.gif ???
Use this directive to specify if you want your server to always handle directory requests by first searching the directory for a welcome file.
The default value is On, which means that the server always searches the directory for a welcome file. The Welcome directive specifies the names of the files that the server recognizes as welcome files.
If you change the value to Off, the server first checks the last character of directory requests for the slash (/) character. If a directory request ends with a slash, the server searches the directory for a welcome file. If a directory request does not end with a slash, the server attempts to return a directory listing.
If the server does not find a welcome file, or AlwaysWelcome is set to Off and the directory request does not end in a slash, the DirAccess directive controls whether or not the server responds to the request with a directory listing.
Note: Setting AlwaysWelcome to Off does not affect requests that contain only your server name without a directory name. The server will always handle these requests by looking in your document root directory for a welcome file. The server cannot generate a directory listing for the document root directory.
AlwaysWelcome Off
AlwaysWelcome On
Use this directive to specify whether you want your server to return directory listings when requested. The values on the Welcome and AlwaysWelcome directives determine when a request is interpreted as a request for a directory listing.
The default value is On, which means that the server can return directory listings.
If you change the value to Off, the server will not return directory listings.
If you change the value to Selective, the server will return directory listings for any directory that contains a file named .www_browsable. The contents of the .www_browsable file are not important, the server only checks for its existence.
DirAccess Off DirAccess Selective
DirAccess On
Use this directive to specify if and where you want your server to display directory listing README files.
The default value is Top, which means that when the server returns a directory listing, it searches the directory for a file named README. If README is found, the server puts the contents of the file at the top of the directory listing.
If you change the value to Bottom, the server searches for a README file, but puts the contents at the bottom of the directory listing.
If you change the value to Off, the server does not search the directory for a README file.
DirReadme Bottom DirReadme off
DirReadme Top
Use this directive to specify whether you want the server to put brackets around alternative text on directory listings. The directives that specify directory listing icons also contain alternate text. The alternate text is used in place of an icon if the requesting browser is not displaying graphics.
DirShowBrackets Off
DirShowBrackets On
Use this directive to specify whether directory listings should include the exact byte count for files smaller than 1 KB.
A value of Off means the directory listing shows a size of 1 KB for all files that are 1 KB or smaller.
DirShowBytes On
DirShowBytes Off
Use this directive to specify whether directory listings should distinguish between uppercase and lowercase letters when sorting file names.
A value of On means uppercase letters are placed before lowercase letters.
DirShowCase Off
DirShowCase On
Use this directive to specify whether directory listings should include the last modification date for each file.
DirShowDate Off
DirShowDate On
Use this directive to specify whether directory listings should include descriptions for HTML files. The descriptions are taken from the files' HTML <title> tags.
DirShowDescription Off
DirShowDescription On
Use this directive to specify whether directory listings should include any hidden files on the directory.
The server considers the following to be hidden files:
DirShowHidden Off
DirShowHidden On
Use this directive to specify whether you want your server to include icons in directory listings. Icons can be used to provide a graphic representation of the content type of the files in the listing. The icons themselves are defined by the AddBlankIcon, AddDirIcon, AddIcon, AddParentIcon, and AddUnknownIcon directives.
DirShowIcons Off
DirShowIcons On
Use this directive to set the maximum number of characters to show in the description field on directory listings.
DirShowMaxDescrLength 30
DirShowMaxDescrLength 25
Use this directive to set the maximum number of characters that will be used for file names on directory listings.
DirShowMaxLength 30
DirShowMaxLength 25
Use this directive to set the minimum number of characters that will always be reserved for file names on directory listings. If the longest file name in the directory is longer than this number, the field will be extended up to the amount specified on the DirShowMaxLength directive.
DirShowMinLength 10
DirShowMinLength 15
Use this directive to specify whether directory listings should include the size of each file.
DirShowSize Off
DirShowSize On
Use this directive to specify URL information to be added at the beginning of each icon-URL specified on a AddBlankIcon, AddDirIcon, AddParentIcon, AddUnknownIcon, or AddIcon directive. The value you specify on this directive is added to the icon-URL value on each of the other directives to form the full request for the icon. The full request can be mapped to a file on your server or it can be a request to another server.
Attention: This directive must be before any of the other icon directives (AddBlankIcon, AddDirIcon, AddParentIcon, AddUnknownIcon, and AddIcon).
IconPath http://icon.server.com:8080/httpd-internal-icons/
In the above example, each request for a directory list icon generates a request to a server named icon.server.com.
IconPath /icons/
With the default settings, each request for a directory list icon generates a request that begins with /icons/. The server uses its mapping rules to map the request to a local file.
Use this directive to specify the name of a welcome file the server should look for to respond to requests that do not contain a specific file name. You can build a list of welcome files by putting multiple occurrences of this directive in the configuration file.
The AlwaysWelcome directive controls whether the server always handles directory requests by searching for a welcome file. By default, when the server receives a request specifying a directory, it searches the directory for a file matching a name specified on a Welcome directive. If a match is found, the file is returned to the requester. If more than one match is found, the order of the Welcome directives within the configuration file determines which file is returned.
If the server does not find a welcome file in the directory, the DirAccess directive controls whether or not the server responds to the request with a directory listing.
Welcome letsgo.html
Welcome Welcome.html Welcome welcome.html Welcome index.html Welcome Frntpage.html
The above default values are shown in the order used by the default configuration.
Use the directives described in this section to control your server's logs. You can have the server log incoming requests, requests for cached files (if the server is a caching proxy), and internal server errors. You can specify the path and file where you want these logs to be kept, how requests should be logged, and which requests you do not want to log.
You most likely will want to use the common log format. This is the default format and it is the same format used by most other types of Web servers. You can use several generic statistic programs to analyze the log contents when they are kept in the common format.
Use this directive to specify the path and file name where you want the server to log access statistics. By default, the server writes an entry to this log each time a client sends the server a request. You can use the NoLog directive if you do not want to log requests from certain clients.
The server starts a new log file the first time you start it on a given day. When creating the file, the server uses the file name you specify and appends a date extension. The date extension is in the format Mmmddyy, where Mmm is the first three letters of the month; dd is the day of the month; and yy is the last two digits of the year.
AccessLog d:\server\logs\accesslog
AccessLog d:\path\httpd-logd:\path\ is the value you entered for Logs directory at installation. The installation default is c:\WWW\LOGS
If you are running your server as a caching proxy, you can log requests to the cache separately from other access requests. Use this directive to specify the path and file name where you want the server to put cache access log files.
The server starts a new log file the first time you start it on a given day. When creating the file, the server uses the file name you specify and appends a date extension. The date extension is in the format Mmmddyy, where Mmm is the first three letters of the month; dd is the day of the month; and yy is the last two digits of the year.
CacheAccessLog d:\server\logs\cachelog
Use this directive to specify the path and file name where you want the server to log internal errors.
The server starts a new log file the first time you start it on a given day. When creating the file, the server uses the file name you specify and appends a date extension. The date extension is in the format Mmmddyy, where Mmm is the first three letters of the month; dd is the day of the month; and yy is the last two digits of the year.
ErrorLog d:\server\logs\errorlog
ErrorLog d:\path\httpd-errord:\path\ is the value you entered for Logs directory at installation. The installation default is c:\WWW\LOGS
Use this directive to specify whether you want your server to write log files in the common format or old format. The common format is the one used by most Web servers. The old format was used with early versions of Web servers from CERN. You most likely will want to use the common format, which is the default.
LogFormat Old
LogFormat Common
Use this directive to specify whether your logs should record entries using local time or Greenwich Mean Time (GMT).
LogTime GMT
LogTime LocalTime
Use this directive to specify that you do not want to log access requests made from specific hosts or domains that match a given template. For example, you may not want to log access requests from local hosts.
You can have multiple occurrences of this directive in your configuration file. You can also put multiple templates on the same directive if you separate them by one or more spaces. You can use host names or IP number addresses on the templates.
Note: In order to use host name templates, you must set the DNS-Lookup directive to On. If the DNS-Lookup directive is set to Off (the default), you can use IP address templates only. See "DNS-Lookup - Specify whether you want to look up host names of clients".
NoLog 128.141.*.* *.edu localhost.*
Use the directives described in this section to control the amount of time the server spends processing requests.
Use this directive to set the time allowed for a client to send a request after making a connection to the server. A client first connects to the server and then sends a request. If the client does not send a request within the amount of time on this directive, the server drops the connection. Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs).
InputTimeout 3 mins 30 secs
InputTimeout 2 minutes
Use this directive to set the maximum time allowed for your server to send output to a client. The time limit applies to requests for local files and requests for which the server is acting as a proxy. The time limit does not a apply for requests that start a local CGI program.
If the server does not send the complete response within the amount of time on this directive, the server drops the connection. Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs).
OutputTimeout 1 hour
OutputTimeout 20 minutes
Use this directive to set the time allowed for a program started by the server to finish. The server stops a program if it runs longer than the limit. Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs).
ScriptTimeout 15 mins
ScriptTimeout 5 minutes
Use the directives described in this section to control which HTTP methods are enabled for your server.
Client requests to the server include a method field that indicates the action the server is to perform on the specified object. The request identifies the object with a Uniform Resource Locator (URL).
Following is a list of methods that the Internet Connection Server supports and a description of how the server would respond to a client request containing the method. The description assumes the method is enabled.
Note: The POST method is commonly used to process HTML forms. For example, the Internet Connection Server Configuration and Administration Forms use the POST method.
Use this directive to specify which HTTP methods you do not want your server to accept.
In the default configuration file, the GET, HEAD, and POST methods are enabled and all other supported HTTP methods are disabled. To disable a method that is currently enabled, change the Enable directive for the method to a Disable directive.
Note: The Configuration and Administration Forms use the POST method to make updates to your server configuration. If you disable the POST method you will not be able to use the Configuration and Administration Forms.
Disable HEAD
Disable CHECKIN Disable PUT Disable CHECKOUT Disable DELETE
Use this directive to specify which HTTP methods you want your server to accept.
You can enable as many of the HTTP methods as you need. For each method you want the server to accept, enter a separate Enable directive followed by the name of the method.
Enable DELETE
Enable GET Enable HEAD Enable POST
Use the directives described in this section to specify default script programs to process SEARCH, POST, PUT, or DELETE requests. Requests are first matched against the configuration file's mapping rules. If the request does not explicitly map to a CGI script program on an EXEC directive, then the request is processed by the appropriate default accessory script.
Use this directive to specify the full path and file name of a program to handle DELETE requests that are not explicitly mapped to a CGI script.
You must enable the HTTP DELETE method for the server to be able to process delete requests (see "Methods"). Because the DELETE method lets clients delete information from your server, you must use protection rules to define who you want to be able to use this method (see Chapter 7. "Protecting Your Server").
DELETE-Script d:\server\cgibin\delete.exe
Use this directive to specify the full path and file name of a program to handle POST requests that are not explicitly mapped to a CGI script.
You must enable the HTTP POST method for the server to be able to process post requests (see "Methods"). Also, because the POST method lets clients replace information on your server, you must use protection rules to define who you want to be able to use this method (see Chapter 7. "Protecting Your Server").
POST-Script d:\server\cgibin\post.exe
Use this directive to specify the full path and file name of a program to handle PUT requests that are not explicitly mapped to a CGI script.
You must enable the HTTP PUT method for the server to be able to process put requests (see "Methods"). Also, because the PUT method lets clients replace information on your server, you must use protection rules to define who you want to be able to use this method (see Chapter 7. "Protecting Your Server").
PUT-Script d:\server\cgibin\put.exe
Use this directive to specify the full path name of the program to handle search requests that are not explicitly mapped to a CGI script.
The server passes the search program information in the following CGI environment variables:
Search d:\server\cgibin\search.exe
Use the directives described in this section to control where your server looks for meta-information files.
You can use a separate set of files to store meta-information about your server's documents. The server can include the meta-information with its HTTP responses. Meta-information describes the file containing a document, not the contents of the document. For example, meta-information for a file might give the date the file was created and the date it was last modified.
HTTP recognizes Multipurpose Internet Mail Extension (MIME) headers. Information that MIME header fields can identify include the file type, subtype, encoding, and content length.
Each line of a meta-information file contains a header field, followed by a colon, and the value of the field. For example:
Last-Modified: Wednesday, 05-Apr-96 20:51:35 GMT Expires-by: Friday, 30-Jun-96 24:00:00 GMT MIME-Version: 1.0 Content-Type: text/html Content-Length: 4577
Use this directive to specify the name you want to use for subdirectories that contain meta-information files. You can only have one instance of this directive, which means all your meta-information subdirectories have the same name.
Any directory from which your server retrieves files can have a subdirectory with the name specified on this directive. The files on the meta-information subdirectory contain meta-information about the files being retrieved. The meta-information files have the same file name and extension as the file they describe, plus an added extension. The name of the added extension is specified on the MetaSuffix directive.
For example, you might have the following two directives in your configuration file:
MetaDir look_here MetaSuffix .file_descIf your server goes to retrieve this file:
d:/html/realcool/coolindex.htmlit looks for meta information to include with the response in this file:
d:/html/realcool/look_here/coolindex.html.file_desc
MetaDir mimeinfo
MetaDir .web
Note: The dot character (.) at the beginning of the default value is used as part of the subdirectory name.
Use this directive to specify the extension you want to use for meta-information files. You can only have one instance of this directive, which means all meta-information files end with the same extension. You must include the period character (.) as part of the value.
Any file your server retrieves can have a meta-information file associated with it. A meta-information file has the same file name and extension as the file it describes, plus the additional extension specified on the MetaSuffix directive. A meta-information file must be located on a subdirectory of the directory that contains the file being described. The name of the subdirectory must be the name specified on the MetaDir directive.
See the description of the MetaDir directive to see an example of how MetaDir and MetaSuffix work together.
MetaSuffix .head
MetaSuffix .meta
Use the directives described in this section to control how your server interprets particular file extensions, which requests your server accepts, and where the server looks for resources.
The server binds files to a content type, content encoding, or content language based on the file extension. The server provides defaults for most commonly used extensions. Use the extension definition directives only if you need to add new definitions or change the default definitions.
Use the mapping directives (Exec, Fail, Map, Pass, and Redirect) to control which requests your server accepts and to map URL requests to your actual files.
You can use the mapping directives to create a virtual hierarchy of Web resources. You can then change the physical location of files or directories without affecting the virtual layout. Even if your server sends documents from different file systems, it can present a virtual layout.
The server applies the mapping directives in the order they appear in the configuration file until a request has been accepted, rejected, or there are no more directives that apply to the request.
This directive is seldom used. It is used to bind files with a particular extension to a MIME-encoding type. The format of the directive is:
AddEncoding .extension encoding
AddEncoding .qp quoted_printable
AddEncoding .Z x-compress 1.0 AddEncoding .gz x-gzip 1.0
Use this directive to bind files with a particular extension to a language. The format of the directive is:
AddLanguage .extension language
AddLanguage .en en
This example defines files with a .en extension as being in American English.
AddLanguage .uk en_UK
This example defines files with a .uk extension as being in United Kingdom English.
Use this directive to bind files with a particular extension to a MIME type/subtype. You can have multiple occurrences of this directive in your configuration file. The server provides defaults for most commonly used extensions. The format of the directive is:
AddType .extension type/subtype encoding [quality[ character-set]]
Any other value of encoding receives the same treatment as binary and is passed in MIME headers as a content encoding MIME header. EBCDIC, 7-bit, and 8-bit is not sent in MIME headers.
AddType .ps application/postscript 8bit 1.0 AddType *.* application/binary binary 0.3
the server would use the application/postscript line because its quality number is higher.
AddType .bin application/octet-stream binary 0.8
AddType .mime www/mime binary 1.0 AddType .bin application/octet-stream binary 1.0 AddType .oda application/oda binary 1.0 AddType .pdf application/pdf binary 1.0 AddType .ai application/postscript 8bit 0.5 AddType .PS application/postscript 8bit 0.8 AddType .eps application/postscript 8bit 0.8 AddType .ps application/postscript 8bit 0.8 AddType .rtf application/x-rtf 7bit 1.0 AddType .csh application/x-csh 7bit 0.5 AddType .dvi application/x-dvi binary 1.0 AddType .hdf application/x-hdf binary 1.0 AddType .latex application/x-latex 8bit 1.0 AddType .nc application/x-netcdf binary 1.0 AddType .cdf application/x-netcdf binary 1.0 AddType .sh application/x-sh 7bit 0.5 AddType .tcl application/x-tcl 7bit 0.5 AddType .tex application/x-tex 8bit 1.0 AddType .texi application/x-texinfo 7bit 1.0 AddType .texinfo application/x-texinfo 7bit 1.0 AddType .t application/x-troff 7bit 0.5 AddType .roff application/x-troff 7bit 0.5 AddType .tr application/x-troff 7bit 0.5 AddType .man application/x-troff-man 7bit 0.5 AddType .me application/x-troff-me 7bit 0.5 AddType .ms application/x-troff-ms 7bit 0.5 AddType .src application/x-wais-source 7bit 1.0 AddType .bcpio application/x-bcpio binary 1.0 AddType .cpio application/x-cpio binary 1.0 AddType .gtar application/x-gtar binary 1.0 AddType .shar application/x-shar 8bit 1.0 AddType .sv4cpio application/x-sv4cpio binary 1.0 AddType .sv4crc application/x-sv4crc binary 1.0
The following are neutral CAE formats:
AddType .igs application/iges binary 1.0 AddType .iges application/iges binary 1.0 AddType .IGS application/iges binary 1.0 AddType .IGES application/iges binary 1.0 AddType .stp application/STEP 8bit 1.0 AddType .STP application/STEP 8bit 1.0 AddType .step application/STEP 8bit 1.0 AddType .STEP application/STEP 8bit 1.0 AddType .dxf application/dxf binary 1.0 AddType .DXF application/dxf binary 1.0 AddType .vda application/vda binary 1.0 AddType .VDA application/vda binary 1.0 AddType .set application/set 8bit 1.0 AddType .SET application/set 8bit 1.0 AddType .stl application/SLA 8bit 1.0 AddType .STL application/SLA 8bit 1.0
The following are vendor-specific CAD-formats commonly used by CERN and in HEP institutes:
AddType .dwg application/acad binary 1.0 AddType .DWG application/acad binary 1.0 AddType .SOL application/solids binary 1.0 AddType .DRW application/drafting binary 1.0 AddType .prt application/pro_eng binary 1.0 AddType .PRT application/pro_eng binary 1.0 AddType .unv application/i-deas binary 1.0 AddType .UNV application/i-deas binary 1.0 AddType .CCAD application/clariscad binary 1.0 AddType .snd audio/basic binary 1.0 AddType .au audio/basic binary 1.0 AddType .aiff audio/x-aiff binary 1.0 AddType .aifc audio/x-aiff binary 1.0 AddType .aif audio/x-aiff binary 1.0 AddType .wav audio/x-wav binary 1.0 AddType .gif image/gif binary 1.0 AddType .ief image/ief binary 1.0 AddType .jpg image/jpeg binary 1.0 AddType .JPG image/jpeg binary 1.0 AddType .JPE image/jpeg binary 1.0 AddType .jpe image/jpeg binary 1.0 AddType .JPEG image/jpeg binary 1.0 AddType .jpeg image/jpeg binary 1.0 AddType .tif image/tiff binary 1.0 AddType .tiff image/tiff binary 1.0 AddType .ras image/cmu-raster binary 1.0 AddType .pnm image/x-portable-anymap binary 1.0 AddType .pbm image/x-portable-bitmap binary 1.0 AddType .pgm image/x-portable-graymap binary 1.0 AddType .ppm image/x-portable-pixmap binary 1.0 AddType .rgb image/x-rgb binary 1.0 AddType .xbm image/x-xbitmap 7bit 1.0 AddType .xpm image/x-xpixmap binary 1.0 AddType .xwd image/x-xwindowdump binary 1.0 AddType .html text/html 8bit 1.0 AddType .htm text/html 8bit 1.0 AddType .htmls text/html 8bit 1.0 AddType .c text/plain 7bit 0.5 AddType .h text/plain 7bit 0.5 AddType .C text/plain 7bit 0.5 AddType .cc text/plain 7bit 0.5 AddType .hh text/plain 7bit 0.5 AddType .m text/plain 7bit 0.5 AddType .f90 text/plain 7bit 0.5 AddType .txt text/plain 7bit 0.5 AddType .rtx text/richtext 7bit 1.0 AddType .tsv text/tab-separated-values 7bit 1.0 AddType .etx text/x-setext 7bit 0.9 AddType .MPG video/mpeg binary 1.0 AddType .mpg video/mpeg binary 1.0 AddType .MPE video/mpeg binary 1.0 AddType .mpe video/mpeg binary 1.0 AddType .MPEG video/mpeg binary 1.0 AddType .mpeg video/mpeg binary 1.0 AddType .qt video/quicktime binary 1.0 AddType .mov video/quicktime binary 1.0 AddType .avi video/x-msvideo binary 1.0 AddType .movie video/x-sgi-movie binary 1.0 AddType .gz multipart/x-gzip binary 1.0 AddType .zip multipart/x-zip binary 1.0 AddType .tar multipart/x-tar binary 1.0 AddType .ustar multipart/x-ustar binary 1.0 AddType *.* www/unknown binary 0.2 AddType * www/unknown binary 0.2 AddType .cxx text/plain 7bit 0.5 AddType .for text/plain 7bit 0.5 AddType .mar text/plain 7bit 0.5 AddType .log text/plain 7bit 0.5 AddType .com text/plain 7bit 0.5 AddType .sdml text/plain 7bit 0.5 AddType .list text/plain 7bit 0.5 AddType .lst text/plain 7bit 0.5 AddType .def text/plain 7bit 0.5 AddType .conf text/plain 7bit 0.5 AddType . text/plain 7bit 0.5
Use this directive to specify a template for requests you want to accept and respond to by running a CGI program. Once a request matches a template on an Exec directive, the request is not compared to request templates on any subsequent directives.
The format of the directive is:
Exec request-template program-path
You must use an asterisk as a wildcard in both the request-template and program-path. The part of the request that matches the request-template wildcard must begin with the name of the file that contains the CGI program.
program-path must also contain a wildcard. The wildcard is replaced with the name of the file that contains the CGI program. The request can also contain additional data that is passed to the CGI program in the PATH_INFO environment variable. The additional data follows the first slash character that comes after the CGI program file name on the request. The data is passed according to CGI specifications. See Chapter 11. "Writing Common Gateway Interface Programs" for information on writing CGI programs.
Exec /idd/depts/* d:\depts\bin\*
In this example, if your server receives a request of /idd/depts/plan/c92, it runs the CGI program in d:\depts\bin\plan.exe or d:\depts\bin\plan.cmd with c92 passed to the program as input.
Exec /admin-bin/* d:\path\* Exec /cgi-bin/* d:\path\*d:\path\ is replaced by a directory you entered at installation. If you used the installation defaults, your default Exec directives would be:
Exec /admin-bin/* C:\WWW\ADMIN\* Exec /cgi-bin/* C:\WWW\CGI-BIN\*
Use this directive to specify a template for requests you do not want to process. Once a request matches a template on a Fail directive, the request is not compared to request templates on any subsequent directives.
The format of the directive is:
Fail request-template
You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.
Fail /usr/local/private/*
Use this directive to specify a template for requests you want to change to a new request string. After your server changes the request, it takes the new request string and compares it to the request templates on subsequent directives.
The format of the directive is:
Map request-template new-request
You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.
Map /stuff/* /good/stuff/*
In the above example, your server would take any requests starting with /stuff/ and change the /stuff/ portion of the request to /good/stuff/. Anything that followed /stuff/ on the original request would also be included in the new request string. So /stuff/whatsup/ would change to /good/stuff/whatsup/. Your server would take the new request string and continue to compare it to request templates on subsequent directives.
Use this directive to specify a template for requests you want to accept and respond to with a document from your server. Once a request matches a template on a Pass directive, the request is not compared to request templates on any subsequent directives.
The format of the directive is:
Pass request-template [file-path]
You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.
This parameter is optional. If you do not specify a path, the request itself is used as the path. The drive is assumed to be the drive where the server program is installed.
Pass /updates/parts/* C:\WWW\HTML\catalog\updates\parts\*
In the above, your server would respond to a request starting /updates/parts/ with a document from C:\WWW\HTML\catalog\updates\parts\. Anything that followed /updates/parts/ would also be used to identify the document. So your server would respond to the request /updates/parts/printers/ribbon.html with the document in file C:\WWW\HTML\catalog\updates\parts\printers\ribbon.html.
Pass /gooddoc/*
In the above example, your server would respond to a request starting with /gooddoc/ with a document from d:\gooddoc\ (where d: is the drive where you installed the server program. So your server would respond to the request /gooddoc/volume1/issue2/newsletter4.html with the document in file d:\gooddoc\volume1\issue2\newsletter4.html.
Pass /Docs/* d:\path\* Pass /httpd-internal-icons/* d:\path\* Pass /icons/* d:\path\* Pass /Admin/* d:\path\* Pass /* d:\path\*d:\path\ is replaced by a directory you entered at installation. If you used the installation defaults, these Pass directives would be:
Pass /Docs/* C:\WWW\DOCS\* Pass /httpd-internal-icons/* C:\WWW\ICONS\* Pass /icons/* C:\WWW\ICONS\* Pass /Admin/* C:\WWW\ADMIN\* Pass /* C:\WWW\HTML\*
Note: The path following Pass /* is your document root directory. See "Understanding the Document Root Directory" for more information.
The following Pass directives are also included as defaults. These directives enable your server to be a proxy.
Pass http:* Pass ftp:* Pass gopher:* Pass wais:*
Use this directive to specify a template for requests you want to accept and send to another server. Once a request matches a template on a Redirect directive, the request is not compared to templates on any other directives in your configuration file.
The format of the directive is:
Redirect request-template URL
You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.
URL must contain a protocol specification and the name of the server to send the request to. It can also contain a path or file name. If request-template uses a wildcard, the path or file name on URL can also use a wildcard. The part of the original request that matches the wildcard on request-template is inserted in place of the wildcard on URL.
Redirect /chief/stuff/* http://www.other.org/wahoo/*
In this example, your server sends any requests beginning with /chief/stuff/ to the wahoo directory of the www.other.org server.
Use this directive to specify whether you want your server to distinguish between uppercase and lowercase letters when comparing file extensions to the extension patterns on AddType, AddEncoding, and AddLanguage directives. By default, the server does not distinguish between uppercase and lowercase.
SuffixCaseSense On
SuffixCaseSense Off
Use the directives described in this section to configure your server as a caching proxy. See "Running Your Server as a Caching Proxy" for more information on proxy servers.
Use this directive to set the maximum amount of time for the server to keep cached files with URLs matching a given template. Documents with URLs matching the template will be deleted after they have been cached for the specified time, regardless of their expiration date. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol. Specify the time value in any combination of months, weeks, days, and hours.
CacheClean http:* 2 weeks CacheClean ftp:* 1 month 2 days CacheClean gopher:* 3 days 12 hours
Use this directive to set a default expiration time for files that the server did not give either an Expires or a Last-Modified header to. You specify a URL template and the expiration time for files with URLs that match the template. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol. Specify the time value in any combination of months, weeks, days, and hours.
CacheDefaultExpiry ftp:* 1 month CacheDefaultExpiry gopher:* 10 days
CacheDefaultExpiry ftp: 1 day CacheDefaultExpiry gopher: 1 day CacheDefaultExpiry http: 0
Notice in the above defaults that the default expiration for HTTP is 0. HTTP should be kept at 0 because many script programs don't give an expiration date, yet their output expires immediately. A value other than 0 may cause problems.)
Use this directive to specify whether you want the server to return cached files that have expired. Specify Off for the value if you want the server to be able to return expired files. Use the default value of On if you do not want the server to return expired files. Generally, you will not want the server to return expired files. An exception might be if you were demonstrating the server and do not particularly care about the content being returned.
CacheExpiryCheck Off
CacheExpiryCheck On
HTTP servers usually give the Last-Modified time for a file, but not the Expires date. Use this directive to have your server approximate the expiration date of these files based on the Last-Modified time. The server uses the Last-Modified date to determine how long it has been since the file was modified. The server multiplies that length of time by the value on the CacheLastModifiedFactor directive. The server uses the result of this calculation to assign the file an expiration date when it caches the file.
CacheLastModifiedFactor 0.2The above example would cause files modified five months ago to expire after one month.
CacheLastModifiedFactor OffThe above example would turn this function off.
CacheLastModifiedFactor 0.1
The default of 0.1 would cause files modified 20 days ago to expire after 2 days.
The garbage collection process assigns each file in the cache a size factor when determining which files to delete. The greater the size of the file, the greater the chances that it will be deleted. Use this directive to set the lower limit for file size calculations. Garbage collection assigns all files under this limit the same size factor. Specify the value in kilobytes (K).
CacheLimit_1 400 K
CacheLimit_1 200 kilobytes
The garbage collection process assigns each file in the cache a size factor when determining which files to delete. The greater the size of the file, the greater the chances that it will be deleted. Use this directive to set the upper limit for file size calculations. Garbage collection assigns all files above this limit the same size factor. Files above the limit will usually be deleted. Specify the value in kilobytes (K).
CacheLimit_2 2000 K
CacheLimit_2 4000 K
During retrieval, cache files are locked. If something goes wrong, a locked file may be left hanging. Use this directive to set the amount of time after which the lock on the file can be broken. Specify the time value in minutes (mins).
Note: Set CacheLockTimeOut to a value equal to or greater than OutputTimeOut. The default value of 20 minutes is the same as the default for OutputTimeOut.
CacheLockTimeOut 30 mins
CacheLockTimeOut 20 minutes
Use this directive to specify whether you want the proxy server to retrieve files from remote servers. Use the default value of Off if you want the server to be able to retrieve files from remote servers.
Specify On if you want the server to run in stand alone cache mode. This means that the server can return only files already stored in its cache. Typically, you would also set the CacheExpiryCheck directive to Off when running the server in this mode.
Running the server in stand alone cache mode can be useful if you are using the server for demonstrations. If you know all the files you want to use for a demonstration are stored in the cache, then you do not need a network connection.
CacheNoConnect OnIn the above example, the server returns only files stored in its cache.
CacheNoConnect Off
Use this directive to specify that only files with URLs that match the given template should be cached. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol.
CacheOnly http://realstuff/*
Use this directive to specify the top directory in the cache hierarchy. The server will create subdirectories within this directory for each cached protocol. It will also create subdirectories under each protocol subdirectory for each remote server.
CacheRoot /webcache
Use this directive to set the maximum amount of disk space you want the proxy cache to use. If you have plenty of disk space, you may want to substantially increase the 5 M default size. The size of the cache will usually stay below the maximum, but may occasionally grow slightly larger. When the maximum size is reached, the garbage collection process begins. Specify the cache size in megabytes (M).
CacheSize 50 M
CacheSize 5 M
Use this directive to specify that you do not want to cache files that expire within the given time period. This directive helps to lessen the confusion between servers when their clocks are not synchronized. You can also use the directive to prevent the server from caching files that expire soon.
CacheTimeMargin 5 mins
CacheTimeMargin 2 minutes
The default means that no file expiring in less than two minutes will be cached.
Use this directive to set the maximum amount of time for the server to keep unused cached files with URLs matching a given template. The server deletes unused files with URLs matching the template after they have been cached for the specified time, regardless of their expiration date. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol. Specify the time value in any combination of months, weeks, days, and hours.
CacheUnused ftp:* 3 weeks CacheUnused gopher:* 3 days 12 hours CacheUnused * 4 weeks
Use this directive to enable the caching of files. With caching turned on, the proxy server can store the files it retrieves from other servers in a local cache. The server can then respond to subsequent requests for the same files without having to retrieve them from another servers. This can improve response time.
Caching On
Caching Off
If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for FTP requests.
ftp_proxy ftp://outer.proxy.server/
If you have enabled caching, the server uses the garbage collection process to delete files that should no longer be cached. Files are deleted based on their expiration date and other proxy directive values. Use this directive to turn garbage collection on or off. Generally, you would not turn off garbage collection if you have enabled caching. If you do, your cache file could grow beyond the maximum size you set for it.
Assuming garbage collection is turned on, the garbage collection process runs when the cache reaches its maximum size (as specified on the CacheSize directive). The garbage collection process will also run at the time of day specified on the GcDailyGc directive.
Gc On
Gc Off
Use this directive to specify a particular time of day to run the garbage collection process. Garbage collection occurs automatically when the cache size limit is reached. By specifying a daily time for garbage collection you can also remove cached files before the cache reaches its maximum. Specify the time value in 24:00 hour format. Generally, you would want the garbage collection process to run when your server is not being used much for other things. This is why the default is 03:00.
GcDailyGc 22:00
The above example would start the garbage collection process at 10 PM.
GcDailyGc Off
The above example would disable daily garbage collection.
GcDailyGc 03:00
Garbage collection works best if it can read all cache information into memory at one time. It may not be able to read in the entire cache if your system does not have enough main memory.
Use this directive to specify how much memory garbage collection can use. The value you specify should be approximately the amount of virtual memory that the server may use while performing garbage collection. The amount of memory needed will vary based on dynamic changes such as the directory structure of cached files. Specify the value as a number that represents kilobytes, but do not put a K next to the number.
If garbage collection fails because there is not enough memory on your system, set this directive to a smaller value. If you have plenty of memory to spare, you may want to set this value above the default of 500.
GcMemUsage 100
The example above might be used for a machine with a small amount of memory.
GcMemUsage 500
If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for Gopher requests.
gopher_proxy gopher://outer.proxy.server/
If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for HTTP requests.
http_proxy http://outer.proxy.server/
Use this directive to set the size of the buffer. For each proxy request, the server allocates a buffer up to the size you specify on this directive. If the file being retrieved is larger than the buffer, the server sends it to the client without a Content Length header. Specify the buffer size in kilobytes (K) or megabytes (M).
MaxContentLengthBuffer 2 M
MaxContentLengthBuffer 50 K
Use this directive to specify the domains that you want the server to directly connect to rather than going through a proxy.
Specify the value as a string of domain names or domain name templates. Separate each entry in the string with a comma. Do not put any spaces in the string.
You specify templates on this directive a bit differently than the way you specify templates on other directives. Most importantly, you cannot use the wildcard character (*). What you can do is specify a template by including only the last part of a domain name. The server connects directly to any domains that end with a string matching the templates you specify. The following example shows how this works.
no_proxy www.someco.com,.raleigh.ibm.com,.some.host.org:8080
In the above example the server would not go through a proxy for the following requests:
Use this directive to specify that the server should not cache files with URLs matching the given template. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol.
NoCaching http://joke/*
If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for WAIS requests.
wais_proxy wais://outer.proxy.server/
Use the directives described in this section to control the performance of your Internet Connection Server.
Use the MinActiveThreads, MaxActiveThreads, and IdleThreadTimeout directives to specify your server's pool of available threads. By having a pool of threads available to your server, you can reduce the number of times your server needs to start and close new threads.
Each time your server receives a request from a client, it uses one or two threads to perform the requested action. (One thread if the server is not performing DNS lookup. Two threads if the server is performing DNS lookup.) The server first checks to see if any threads are available. If so, the server uses available threads to process the request. If no threads are available and the maximum number of active threads has not been reached, the server starts new threads to process the request. If the maximum number of active threads has been reached, the server holds the request until threads become available. When a request finishes, the threads it was using become idle. As long as idle threads do not expire, they are available for the server to use again.
Use the ServerPriority directive to specify the priority your operating system gives to the server.
If you see a problem with your performance with your server being too slow, it could be related to any of the following:
Use the CacheLocalFile directive to load your most popular files into the servers memory at startup time.
Use this directive to specify the names of files you want to load into the server's memory each time you start the server. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each file you want to load into memory.
By keeping your most frequently requested files loaded in the server's memory, you can improve your server's response time for those files. For example, if you load your server's welcome page into memory at startup, the server can handle requests for the page much more quickly than if it had to read the file from a disk. Keep in mind that for each file you load into memory, you are making that amount of memory unavailable for other uses.
Before responding to a request for a file that is stored in memory, the server checks to see if the file has changed since the server was started. If the file has changed, the server responds to the request with the updated file and deletes the old version from its memory. To load the new file into memory, you need to restart the server.
Notes:
CacheLocalFile d:\www\html\index.html
Use this directive to specify how long the server should keep an idle thread available. A thread becomes idle after the last request to use it completes. If the number of threads already available or active is greater than the value on MinActiveThreads and the server does not use the thread again within the specified time, the server closes the idle thread.
Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs). If you use the default value of forever, the server does not close any idle threads.
IdleThreadTimeout 5 mins
IdleThreadTimeout forever
Use this directive to set the maximum number of threads that you want to have active at one time. If the maximum is reached, the server holds new requests until another request finishes and threads become available. Generally, the more power your machine has, the higher the value you should use for this directive. If your machine starts to spend too much time on overhead tasks, such as swapping memory, try reducing this value.
MaxActiveThreads 59
MaxActiveThreads 40
Use this directive to set the minimum number of threads that you want the server to either be using or have available to use. The server will not close threads below this minimum even if the threads are idle. Generally, the more power your machine has, the higher the value you should use for this directive. If your machine starts to spend too much time on overhead tasks, such as swapping memory, try reducing this value.
MinActiveThreads 30
MinActiveThreads 20
Use this directive to specify a priority class for the Internet Connection Server. The operating system uses priority classes to determine which processes have priority over others.
Valid values are:
You may want to use a value of 0 if the machine yourInternet Connection Server is running on is also processing other types of requests (for example, if the machine is also running IBM LAN Server for OS/2).
ServerPriority 0
ServerPriority 1
Use the directives described in this section to control access to your server's resources.
You link protection setups to groups of files based on the requests that are used to access those files. Use the DefProt and Protect directives to define the requests you want to protect.
You can define the actual protection setup in a separate protection file or directly in the configuration file. Within the configuration file, you can define and label a protection setup using the Protection directive. You can also define a protection setup directly on a DefProt or Protect directive.
This section also describes the subdirectives that define a protection setup.
See Chapter 7. "Protecting Your Server" for step-by-step instructions on protecting your server resources.
Use this directive to associate a default protection setup with requests that match a template.
Attention: For protection to work properly, you must put your DefProt and Protect directives before any Pass or Exec directives in your configuration file.
The format of the directive is:
DefProt request-template setup
Protection is not actually activated for requests matching the template unless the request also matches a template on a subsequent Protect directive. See the description of the Protect directive for an explanation of how it is used with DefProt.
DefProt /secret/* d:\server\protect\setup1.acc
The above example identifies a separate file that contains the protection subdirectives.
DefProt /secret/* SECRET-PROT
The above example uses a label name to point to the protection subdirectives. The label name must match a label name on a Protection directive. The Protection directive must come before the DefProt directive.
DefProt { AuthType Basic ServerID restricted PasswdFile d:\docs\WWW\restrict.pwd GroupFile d:\docs\WWW\restrict.grp GetMask authors PutMask authors }
The above example includes the protection subdirectives as part of the DefProt directive.
Use this directive to activate protection setup rules for requests that match a template.
Attention: For protection to work properly, you must put your DefProt and Protect directives before any Pass or Exec directives in your configuration file.
The format of the directive is:
Protect request-template [setup]
This parameter is optional. If it is omitted, the protection setup is defined by the most recent DefProt directive that contains a matching template.
Protection setup is defined with protection subdirectives. See "Protection Subdirectives" for descriptions of the protection subdirectives. If present, this parameter can take one of three forms:
Protection BUS-PROT { AuthType Basic ServerID restricted PasswdFile d:\docs\WWW\restrict.pwd GroupFile d:\docs\WWW\restrict.grp GetMask authors PutMask authors } DefProt /secret/* d:\server\protect\setup1.acc Protect /secret/scoop/* Protect /secret/business/* BUS-PROT Protect /topsecret/* { AuthType Basic ServerID restricted PasswdFile d:\docs\WWW\restrict.pwd GroupFile d:\docs\WWW\restrict.grp GetMask topbrass PutMask topbrass } Pass /secret/scoop/* d:\WWW\restricted\* Pass /secret/business/* d:\WWW\confidential\* Pass /topsecret/* d:\WWW\topsecret\*
In the above example, the server activates protection as follows:
Use this directive to define a protection setup within the configuration file. You give the protection setup a name and define the type of protection using protection subdirectives.
Note: In the configuration file, you must place Protection directives before any DefProt or Protect directives that point to them.
The format of the directive is:
Protection label-name { subdirective value subdirective value . . . }
Protection NAME-ME { AuthType Basic ServerID restricted PasswdFile d:\WWW\password.pwd GroupFile d:\WWW\group.grp GetMask groupname PutMask groupname }
Protection PROT-ADMIN { PasswdFile C:\TCPIP\ETC\ADMIN.PWD Mask All@(*) PostMask All@(*) PutMask All@(*) GetMask All@(*) AuthType Basic ServerID Private_Authorization }
Following are descriptions of each of the protection subdirectives that can be used in a protection setup. The subdirectives are in alphabetical order.
Protection setups can either be in separate files or within the configuration file as part of DefProt, Protect, or Protection directives.
See "Protection Example" and the previous descriptions of the DefProt, Protect, and Protection directives for examples of using protection setups.
Use this subdirective with a value of On if you want Access Control List files (ACL) to override the masks specified in the protection setup. If a directory being protected by the protection setup has an ACL file, the mask subdirectives in the protection setup are ignored. (The mask subdirectives are DeleteMask, GetMask, Mask, PostMask, and PutMask.)
See "Using Access Control List (ACL) Files" for more information on ACL files.
ACLOverride On
Use this subdirective when limiting access based on user names and passwords. Specify the type of authentication to use when the client sends a password to the server. The only meaningful value for this subdirective is Basic. With basic authentication, passwords are sent to the server as plain text. They are encoded, but not encrypted.
AuthType Basic
Use this subdirective to specify user names, groups, and addresses templates authorized to make DELETE requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".
DeleteMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*
Use this subdirective to specify user names, groups, and address templates authorized to make GET requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".
GetMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*
Use this subdirective to specify the path and file name of the server group file that you want this protection setup to use. The groups defined within the server group file can then be used by:
See "Using Server Group Files" more information about server group files.
GroupFile d:\docs\WWW\restrict.group
Use this subdirective to specify user names, groups, and address templates authorized to make HTTP requests not covered by other mask subdirectives. See "Rules for Specifying User Names, Group Names, and Address Templates". See "Methods" for descriptions of the HTTP methods supported by Internet Connection Server.
Mask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*
Use this subdirective when limiting access based on user names and passwords. Specify the path and name of the password file that you want this protection setup to use.
PasswdFile c:\WWW\restrict.password
Use this subdirective to specify users, groups, and address templates authorized to make POST requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".
PostMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*
Use this subdirective to specify users, groups, and address templates authorized to make PUT requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".
PutMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*
Use this subdirective when limiting access based on user names and passwords. Specify a name you want to associate with the password file being used. The name does not need to be a real machine name.
The name is used as an identifier to the requester. Since different protection setups can use different password files, having a name associated with the protection setup can help the client decide which password to send. Most clients display this name when prompting for a user name and password.
ServerID restricted
Use the directive described in this section to control whether individual users of your server can have their own private Web documents.
Use this directive to specify the name of a directory on which you want to allow individual users to have their own subdirectories. Each user can have a subdirectory off of the directory name you specify. URL requests to user subdirectories are in the format ~username. The server passes these requests to the appropriate user subdirectory on the HomeDir directory.
You can use the HomeDir directive either by itself or together with the UserDir directive. Whether or not you use UserDir determines how the server maps URL requests to the user subdirectories.
If you use HomeDir without UserDir, all files within the user subdirectories are accessible to clients. See the description of the UserDir directive for a description and example of using HomeDir with UserDir.
Note: By using this directive, you are telling the server to process all requests to user subdirectories. You do not need to put any additional Pass directives in the configuration file.
HomeDir c:\user
In the above example, the server would map URL requests containing /~username to the c:\user\~username directory.
Use this directive to specify the name of a subdirectory where individual users can keep the files they want to be accessible to clients of the server. This directive limits client access to just one subdirectory within each user subdirectory. Each individual subdirectory off of the HomeDir directory can have a subdirectory with the name you specify.
To use this directive, you must also use the HomeDir directive.
An example of why you might want to use this directive is if your server has access to a LAN server where users have home directories. You can use this directive to define one subdirectory off of each user directory where users could keep Web pages they want to be accessible.
UserDir html_docIn the above example the server would map URL requests containing /~username to the c:\user\~username\html_doc directory.